Computer servers are well known today to execute applications for clients. A server includes various resources such as one or more processors, memory and storage used by the applications during execution. If the usage of one or more of the resources nears or reaches capacity, this may slow execution of the applications on the server. To alleviate this problem, one or more applications executing on this server can be transferred to another server, or in some servers, additional resources can be allocated to the server. Conversely, if one or more of the resources of this server are being used well below capacity, it may be cost effective to load another application on this server to better utilize the resources.
Some computers sold to customers include one or more processors and units of memory that are disabled, so they are not used by the customer or charged to the customer until the customer needs them and they are enabled and allocated. So, if the customer needs additional processing power or memory, then an unused processor or unit of memory can be allocated, and the customer is then charged for it. Conversely, if the customer does not currently need all of the processing power or memory currently enabled and allocated, then the excess processing power and memory can be de allocated and disabled, so the customer will not be charged for it. This is one type of e-business on demand computing.
Some servers are configured into logical partitions (“LPARs”), where some or all of the physical resources of a single computer are logically divided into separate “virtual” computers. In the case of CPUs, each LPAR is allocated a certain share of total processor time (i.e. “virtual” processors) or a certain number of real processors. In the case of memory and storage, each LPAR is allocated a certain amount. Specific, real memory and real storage units can be dedicated to the LPAR or “virtual” memory and “virtual” storage can be allocated. In the latter case, the location of the real memory and real storage for any LPAR can be located anywhere in the real computer. Applications execute in an LPAR similar to how they execute in a real computer. If the usage of one or more of the virtual resources allocated to an LPAR nears capacity, this may slow execution of the applications in the LPAR. In such a case, an unused resource can be allocated to this LPAR, some of an under utilized resource of another LPAR can be transferred to the resource constrained LPAR, or an application executing in this LPAR can be transferred to another LPAR. Conversely, if one or more of the virtual resources is being used well below capacity, it may be cost effective to load another application into this LPAR or transfer some of the resources of this LPAR to another LPAR where they are needed.
It is well known to monitor use of a server's real resources and an LPAR's real and virtual resources. For example, a known ‘vmstat’ program (written by Henry Ware at Youngstown State University, in Youngstown, Ohio) executing in a Unix computer monitored an amount of processor usage, (real) RAM availability, (virtual) memory also called “Swap Space” or “Paging Space”, I/O in, I/O out, interrupts per second, context switches per second, processes waiting for run time, processes in uninterruptable sleep, page swapping from RAM to storage and processes swapped out but otherwise runable in the Unix computer. The ‘vmstat’ program reported the results to a local or remote systems administrator, database or program. For example, the ‘vmstat’ program reported the resource utilization or availability to an IBM Tivoli program running on the server, and the IBM Tivoli program reported the utilization to a remote database and Tivoli Enterprise Console. The ‘vmstat’ program can also report the resource utilization or availability to an IBM Performance Monitor (“PMON”) program which displays the results locally to a systems administrator or stores the results in a database. If the processor usage within a server is above a predetermined upper threshold, and a systems administrator notices the problem, the systems administrator may attempt to determine the cause of the problem. For example, an application executing in the server may be “hogging” the processor(s). In such a case, the systems administrator may move this application to another server, or modify it to use less processing power. Alternately, the systems administrator or a technician can physically install an additional processor into the server. As noted above, in some servers, there are unused processors and memory (because the customer does not want to pay for them until needed). An IBM Capacity Upgrade On Demand (“CUOD”) program was currently known to enable/allocate such an unused processor or memory into use upon request by the systems administrator. Likewise, if the server's usage of processor or memory is very low, a systems administrator can invoke the CUOD program to disable/de allocate some of the processor or memory, upon request by a systems administrator, and such de allocated processor or memory will become unused (and unpaid by the customer). While the current CUOD program executes on the server being managed, it is invoked via an IBM Hardware Management Console for the server. (This ensures centralized monitoring of the allocations and de allocations by the CUOD program. Such allocations and de allocations affect customer billing.)
A “Disk Free” or ‘df’ (by Glenn Fowler of AT&T Corp.) program function is also known to monitor an amount of allocated storage that is currently availability, i.e. not currently used by server or LPAR to which it is allocated. The Disk Free program monitors storage availability by examining the statistics of mounted file systems. The original DF program was included in Version 1 of AT&T Unix operating system.
An IBM Total Storage SAN File System program and an SAN Volume Controller program based on IBM Storage Tank (tm) technology is currently known to manage storage as a pool. Many customers can share the same storage pool. Statistically, this provides the most efficient utilization of the storage pool, because at some times some of the customers will have low storage needs while other customers will have high storage needs. The IBM Total Storage SAN Volume Controller program monitors the amount of storage utilization and availability. The storage is based on storage policies. For example, a storage policy may require three copies of certain types of files, but only two copies of others. The number of copies affects the amount of storage utilization. Another storage policy may indicate how long backup copies are retained in storage before deletion. This also affects the amount of storage utilization.
Remote monitoring of servers was also known, as well as an XML protocol. For example, US Patent Publication 2001/0051890 A1 to Burgess discloses a monitored system which includes probes or agents for gathering data on the operating system, database and applications, and sends it to a productivity center. The productivity center receives the data, determines if any jobs need to be performed and allocates jobs to associates. The data exchanged between the productivity center and the monitored system is made using XML protocol. The productivity center also includes an escalation engine which sends alerts and notifications to appropriate personnel.
An object of the present invention is to automatically allocate and de allocate computer resources as appropriate to effectively execute the applications on a server without allocating excessive computer resources.